1. Field of the Invention
The present invention generally relates to computer systems. More particularly, the present invention relates to a system and method to provide a virtual operator panel for a peripheral device in connection with one or more host computers where the specific settings for the peripheral device are unknown to the host computer.
2. Description of the Related Art
Computers and common peripheral devices such as modems, printers, and displays are connected in communication such that a computer, generally referred to as the host, can send data and receive data from the peripheral devices and other computers. The communication channel between the computer(s) and devices may be either unidirectional, such that one computer or peripheral device only sends or only receives data to another, or bidirectional, with each device both sending and receiving data. In either instance, one computer or peripheral device can serve either single or multiple hosts which is dependent upon the operational capabilities of the devices.
A typical device-host connection is a cable connected directly to the serial or parallel port of both the host and the peripheral device such that the peripheral device primarily serves the connected host. Alternatively, a computer and peripheral device are connected in a network and each device is accessible to and can interface with multiple hosts residing on that network. In order to properly interface, the computer(s) and peripheral device(s) must have a known data protocol between them whereby each device can understand the data from one another.
The interface protocol is particularly important in host-peripheral device applications in which the host is controlling the peripheral device to perform a function. The data passed from the host to the peripheral must be very specific in the desired function, and often, the peripheral device will communicate with the host to inform the host of the properties and functions of the peripheral device. An example of such interface is that between a computer as the host device and a printer as the peripheral device through a known protocol such as the Network Printer Alliance Protocol (NPAP).
A printer has numerous setting capabilities, a few examples being paper size, font, and paper type, which are often changed for every single print job requested by a host computer. Furthermore, prior art printers have the capability to send data back to the host computer indicative of various parameters of the printer, such as job in progress, paper jam, paper tray status, and printing errors. Thus, when the computer and printer are interfaced, they pass the above data regarding the print jobs and printer status through data variables that reflect the attributes of one parameter. And when the attributes of printing parameter are desired to be changed, the computer sends specific variables to the printer and each variable changes one parameter of the printer. Given the significant number of parameters for the printer and the specific control desired by the host computer, several problems are recurrent in the, host computer-peripheral device interface.
The host computer and peripheral device can be unaware of the all of the variables for different parameters the other devices, such as the variables for specific printer settings and capabilities, or the inter-relationship between different variables and their related parameters and functions. Accordingly, when a printer attempts to provide this xe2x80x9cself-descriptivexe2x80x9d data, such as configuration data, to a host computer, or when the host computer attempts to change several settings in the printer, the variables utilized may not effectively communicate all parameters of the devices. Because of this inadequate communication between interfaced devices in prior art systems, hosts and peripheral devices have been unable to easily provide conceptual settings to a user, such as xe2x80x9cprint qualityxe2x80x9d or xe2x80x9cpage layout.xe2x80x9d
Moreover, either the host or the peripheral device may need to update many variable settings on their underlying hardware for proper functioning, especially through upgrades and changes in software. To correctly update the variables, the host must have advance knowledge of the variables and their interdependence to even allow the user to change the variables. Further, other problems can occur because subsequent code releases in the device tend to change those interdependencies by changing the settings of the individual variables or adding new dependencies. Even though the device may be aware of the new interdependencies, if the dependencies are not easily stored and communicated to other systems in the device, confusion and extra development time may result as those variables are changed.
More recently, in an attempt to provide low-cost peripheral devices, such as printers, expensive components such as LCD displays or specific control buttons are often excluded. The control buttons or display provides the simplest manner for the user to configure the device. Thus, to overcome the lack of a specific button or display to directly actuate the settings for the peripheral device, several devices provide an electronic (virtual) replica of an operator panel for the peripheral device, typically upon the display screen of a host computer. However, there are several problems with existing virtual operator panels.
A typical virtual operator panel allows a host utility to display a replica of the device panel, but without providing improved functionality, and only duplicate the existing display of the peripheral device. Another problem arises in that when the peripheral device includes advanced or complicated settings and the representations of which would clutter the virtual operator panel and confuse a novice user. A further problem occurs when the peripheral device must be configured with settings that can not be easily entered at the peripheral device, and example being settings that require alphabetic characters that are not easily represented without an alphanumeric keyboard., Such problems leave the user or customer engineer unable to easily configure or check on the configuration of the peripheral device from a remote location or at the device itself.
Currently, host computers attempt to provide access to the peripheral device settings with several limitations. The host computer must know in advance the valid values for each setting in lo the peripheral device, and the meaning of each value if a textual representation is required. The host computer must also know translated strings if the peripheral device is to provide multi-language support. Furthermore, the host computer must know all settings in the device, and the default values for each setting which can be represented.
These requirements to provide a virtual operator panel challenge the host programmer. Although most printers support similar emulations, they do not all support a common language. Another challenge is that the specific value can change from device to device and potentially from code release to code release of the peripheral device. This means the host computer must keep track of the values on a device by device basis, and sometimes a code level by code level basis, which is commonly accomplished through software updates. This update is critical because setting an incorrect value on the peripheral device at least results in the user not getting the desired setting, and possibly can causes the peripheral device to crash.
Unfortunately, a crash resulting from an incorrect settings might not occur immediately and the user will not make a connection between setting the value for the peripheral device and the crash. Such a crash results in additional cost to the company in the form of support calls, on-site service or lost sales due to unsatisfied customers, and can cause economic impairment for the customer.
Accordingly, to provide an accurate and effective virtual operator panel for a peripheral device, the capability to understand the interdependencies between public settings and private settings of the peripheral device must exist at both the host computer and the device. Furthermore, the public/private settings relationships frequently change and if one device were not properly updated, the virtual operator panel would either fail or misrepresent the settings and variables of the peripheral device. The prior art systems thus provide an unsatisfactory interface between host computers and peripheral devices to provide a virtual operator panel, and particularly host computers and printers, as complex data and commands with variables is limited and prone to error through versions of the peripheral device. A system that allows improved communication to provide a virtual operator panel would therefore represent an improvement over the prior art computer-peripheral device interface systems. It is to the provision of such an improved system and method that the present invention is primarily directed.
The present invention, in one embodiment, is a system for providing a virtual operator panel for a peripheral device in an interface with a host computer, where the system includes a peripheral device having a processor and a data store that stores peripheral device settings including one or more public settings where each public setting is indicative of one or more private settings of the peripheral device, and at least one host computer in bidirectional communication with the peripheral device. The host computer has a data store, a display and a processor, and selectively transmits a request to the peripheral device requesting public settings of the peripheral device for generation of a virtual operator panel for the peripheral device on the display of the host computer. The peripheral device then receives the request for peripheral device settings from the host computer and transmits a response, preferably including one or more public settings from the data store of the peripheral device. And the host computer receives the response, including one or more public settings, from the peripheral device and generates a virtual operator panel based upon the response.
The peripheral device processor alternately transmits a response including a plurality of public settings, and the host computer processor may select a panel description based upon the panels indicated by the public settings included in the received response. The peripheral device processor then retrieves the public settings from the peripheral device data store and includes the retrieved public settings in the response.
The virtual operator panel on the display of the host computer preferably includes graphical representations of interactive controls for the peripheral device, and allows a user to actuate a graphical interactive control on the virtual operator panel to change public settings and the corresponding private settings on the peripheral device. In such embodiment, each public setting preferably represents a known setting on the virtual operator panel and thus, the operator panel can represent a specific control for the setting without knowledge of the specific private settings of the peripheral device. When the interactive control is actuated, the host computer then transmits a command to the peripheral device including one or more public settings implicated by the specific actuated interactive control to the peripheral device. The peripheral device processor then receives the command from the virtual operator panel of the host computer and actuates peripheral device functionality in accordance with the command. The peripheral device processor also preferably further transmits updated setting information including one or more public settings back to the host computer once the desired functions are altered on the peripheral device for updating of the virtual operator panel.
When the peripheral device is embodied as a printer, the host computer and printer preferably communicate using NPAP Protocol. Alternately, the host computer and peripheral device communicate using XML encoding. Other protocols and languages as known in the art are alternately used for communication between the host computer and peripheral device.
In a further embodiment, the peripheral device selectively transmits an alert signal including one or more public settings to one or more connected host computers in response to a triggering event in the peripheral device. The alert signal causes generation of the virtual operator panel on the display of the host computer to alert the user preferably with a warning including the public settings of the peripheral device.
The host computer is alternately a second peripheral device in communication with the peripheral device generating a virtual operator panel. Alternately, the peripheral device is a second host computer in communication with a host computer generation a virtual operator panel.
In another embodiment, the invention is a peripheral device generating a virtual operator panel where the peripheral device has a processor for running at least one host process and a device process, and has a data store that stores public settings in relation to the one or more private settings of the peripheral device that each public settings implicates. The host process selectively generates a request for peripheral device public settings for generation of a virtual operator panel for the peripheral device to the device process, and the device process retrieves one or more public setting indicative of the private settings of the peripheral device and transmits one or more public settings to the host process.
Each public setting preferably represents a predefined setting on the virtual operator panel. The host process preferably generates a virtual operator panel in response to receipt of one or more public settings from the device process, with each public setting represented as a predefined setting on the panel. Further, the host process can update an existing setting virtual operator panel in response to receipt of the public setting from the peripheral device.
Thus, when the virtual operator panel generated by the host process includes graphical representations of interactive controls for the peripheral device on the virtual operator panel, the actuation of a specific graphical interactive control causes the host process to transmit a command to the device process including one or more public settings implicated by the specific actuated interactive control. The device process then receives the command from the virtual operator panel of the host process and actuates peripheral device functionality in accordance with the command. Alternately, the device process can then transmit updated setting information including one or more public settings to the host process for updating of the virtual operator panel after actuating peripheral device functionality.
In like manner to the host computer-peripheral device communication, the host process and the device process preferably communicate through NPAP Protocol. Alternately, the host process and the device process communicate through XML encoding, or any other protocol or language as known in the art.
The present inventive system thus provides an inventive method for generating a virtual device operator panel for a peripheral device, including the steps of transmitting a request for peripheral device settings from a host computer to a peripheral device; receiving the request for peripheral device settings at the peripheral device. Then the method includes the steps of generating a response in the peripheral device where the response includes one or more public settings indicative of one or more private settings of the peripheral device, and then transmitting the response from the peripheral device to the host computer, receiving the response from the peripheral device at the host computer, and generating a functional virtual operator panel on a display at the host computer based upon one ore more public settings included in the received response.
The method alternately further includes the step of selecting a panel description from a plurality of panel descriptions in the data store of the peripheral device, where each panel description includes one or more public settings of the peripheral device, prior to the step of transmitting the response from the peripheral device. Then the step of generating the virtual operator panel is generating the virtual operator panel with the panel description from the peripheral device.
The method alternately further includes the steps of retrieving a panel description from the peripheral device data store, and including the retrieved panel description in the response transmitted to the host computer. Then the step of generating a response in the peripheral device, where the response includes one or more public settings indicative of one or more private setting of the peripheral device is generating a response in the peripheral device where the response includes one or more public settings representing a predefined setting on the virtual operator panel.
If the virtual operator panel is embodied on the display of the host computer as including graphical representations of interactive controls for the peripheral device, then the method further includes the steps of transmitting a command from the host computer to the peripheral device. The command preferably includes one or more public settings implicated by the specific actuated interactive control such that the step of transmitting the command occurs upon a user actuating a graphical interactive control on the virtual operator panel. Then the method further preferably includes the steps of receiving the command from the virtual operator panel of the host computer at the peripheral device processor, and actuating peripheral device functionality in accordance with the command received. And then the method further preferably includes the steps of transmitting from the peripheral device processor updated setting information including one or more public settings to the host computer, and updating the virtual operator panel with the public setting information.
If the peripheral device is a printer, then the steps of transmitting a request for peripheral device settings from a host computer to a peripheral device, and transmitting the response from the peripheral device to the host computer preferably occur through an NPAP Protocol. Alternately, the steps of transmitting a request for peripheral device settings from a host computer to a peripheral device, and transmitting the response from the peripheral device to the host computer occur through XML encoding.
When the present inventive system is embodied as a host process and device process in bidirectional communication on a peripheral device, the preferred method for generating a virtual device operator panel for a peripheral device includes the steps of transmitting a request for peripheral device settings from the host process to the device process, and receiving the request for peripheral device settings at the device process. The method then includes the step of generating a response from the device process, where the device process is in communication with a data store of the peripheral device and the data store including public settings in relation to the one or more private settings of the peripheral device that each public setting implicates, and the response including one or more public settings indicative of one or more parameters of the peripheral device. Then the method includes the steps of transmitting the response from the device process to the host process, receiving the response from the device process at the host process, and generating a functional virtual operator panel from the host process based upon the one ore more public settings included in the received response.
The method alternately further includes the step of selecting a panel description from a plurality of panel descriptions in the data store of the peripheral device, where each panel description including one or more public settings, such selection prior to the step of transmitting the response from the device process. Then the step of generating the virtual operator panel is generating the virtual operator panel with the panel description from the device process. Then the method preferably include the steps of retrieving a panel description from the peripheral device data store, such retrieval being accomplished by the device process, and including the retrieved panel description in the response transmitted to the host process.
The step of generating a response from the device process, where the response includes one or more public settings indicative of one or more private settings of the peripheral device is preferably generating a response from the device process where the response includes one or more public settings representing a predefined setting on the virtual operator panel.
If the generated virtual operator panel includes graphical representations of interactive controls for the peripheral device, the method further includes the steps of transmitting a command from the host process to the device process, where the command includes one or more public settings implicated by the specific actuated interactive control, receiving the command from the virtual operator panel of the host process at the device process, and actuating peripheral device functionality in accordance with the command received, such actuation occurring through the device process. The method then preferably further includes the steps of transmitting from the device process updated setting information including one or more public settings to the host process, and updating at the host process the virtual operator panel with the setting information for the updated settings of the peripheral device.
If the peripheral device upon which the host process and device process are occurring is a printer, then the steps of transmitting a request for peripheral device settings from a host process to a device process, and transmitting the response from the device process to the host process preferably occur through NPAP Protocol. Alternately, the steps of transmitting a request for peripheral device settings from a host process to a device process, and transmitting the response from the device process to the host process occurs through XML encoding, or any other language or protocol as known in the art.
The present invention thus provides a commercial advantage in that it allows a host computer in communication with a peripheral device to correctly display and modify the settings in that device on a virtual operator panel. The host computer does not need to have prior knowledge of the peripheral device or its settings. The use of the metavariable also provides a mechanism for the peripheral device to return translated values for those settings and groupings for the settings for updating the virtual operator panel.
The present invention further has industrial applicability as it can particularly enhance a known NPAP protocol, although other languages and protocols would also work, to provide metavariables that can return the valid values for each peripheral device setting, return the name of each setting, provide textual information (translated) for those settings as needed, and return all public settings of the peripheral device. The metavariable further can indicate which settings are read-only, indicate which settings should only be set by qualified personnel, and provide the host computer with the default values for a device setting. Additionally, the accuracy of the metavariable gives the virtual operator panel the ability to command specific changes in the peripheral device and prevents the transmission of invalid values which could crash the device.
Other objects, features, and advantages of the present invention will become apparent after review of the hereinafter set forth Brief Description of the Drawings, Detailed Description of the Invention, and claims.